//package java_cup.runtime;

/**
 * Default Implementation for SymbolFactory, creates
 * plain old Symbols
 *
 * @version last updated 27-03-2006
 * @author Michael Petter
 */

/* *************************************************
  class DefaultSymbolFactory

  interface for creating new EmitSymbols  
 ***************************************************/
/*@Deprecated*/
public class DefaultSymbolFactory : SymbolFactory {
    // Factory methods
    /**
     * DefaultSymbolFactory for CUP.
     * Users are strongly encoraged to use ComplexSymbolFactory instead, since
     * it offers more detailed information about Symbols in source code.
     * Yet since migrating has always been a critical process, You have the
     * chance of still using the oldstyle Symbols.
     *
     * @deprecated as of CUP v11a
     * replaced by the new java_cup.runtime.ComplexSymbolFactory
     */
    /*@Deprecated*/
    public DefaultSymbolFactory() {
    }
    /*@Override*/
    public Node newSymbol(String name, int id, Node left, Node right, Object value) {
        return new Node(id, left, right, value);
    }
    /*@Override*/
    public Node newSymbol(String name, int id, Node left, Object value) {
        return new Node(id, left, value);
    }
    /*@Override*/
    public Node newSymbol(String name, int id, Node left, Node right) {
        return new Node(id, left, right);
    }
    public Node newSymbol(String name, int id, int left, int right, Object value) {
        return new Node(id, left, right, value);
    }
    public Node newSymbol(String name, int id, int left, int right) {
        return new Node(id, left, right);
    }
    /*@Override*/
    public Node startSymbol(String name, int id, int state) {
        return new Node(id, state);
    }
    /*@Override*/
    public Node newSymbol(String name, int id) {
        return new Node(id);
    }
    /*@Override*/
    public Node newSymbol(String name, int id, Object value) {
        return new Node(id, value);
    }
}
